#ifndef RAY_H
#define RAY_H

#include "vecmath.h"
#include "boundingbox.h"

class Ray
{
public:
    Ray();
    Ray(Vec3f start, Vec3f end);
    Ray(const Ray& in);

    Ray& operator=(const Ray& in);
                   
    bool intersect(const BoundingBox& boundingBox, float& distance, Vec3f intersectionOut);
    void getPoint(Vec3f out, float depth) const;
    
public:
    Vec3f origin;
    Vec3f direction;
    float minDistance;
    float maxDistance;
};

#endif // RAY_H
